package com.tancire.net.service;

import java.util.List;

import com.tancire.common.core.domain.entity.SysUser;
import com.tancire.net.domain.CrmCompany;
import com.tancire.net.domain.UpdatePass;

/**
 * 客户管理Service接口
 *
 * @author 陈超
 * @date 2023-12-24
 */
public interface ICrmCompanyService {
    /**
     * 查询客户管理
     *
     * @param id 客户管理主键
     * @return 客户管理
     */
    CrmCompany selectCrmCompanyById(Long id);

    /**
     * 查询客户管理列表
     *
     * @param crmCompany 客户管理
     * @return 客户管理集合
     */
    List<CrmCompany> selectCrmCompanyList(CrmCompany crmCompany);

    /**
     * 新增客户管理
     *
     * @param crmCompany 客户管理
     * @return 结果
     */
    int insertCrmCompany(CrmCompany crmCompany);

    /**
     * 修改客户管理
     *
     * @param crmCompany 客户管理
     * @return 结果
     */
    int updateCrmCompany(CrmCompany crmCompany);

    /**
     * 批量删除客户管理
     *
     * @param ids 需要删除的客户管理主键集合
     * @return 结果
     */
    int deleteCrmCompanyByIds(Long[] ids);

    /**
     * 删除客户管理信息
     *
     * @param id 客户管理主键
     * @return 结果
     */
    int deleteCrmCompanyById(Long id);

    /**
     * 查询登录账号
     *
     * @param account
     * @return
     */
    SysUser selectCrmCompanyByAccount(String account);

    /**
     * 绑定微信小程序
     *
     * @param crmCompany
     */
    void bindMinApp(CrmCompany crmCompany);

    /**
     * 修改密码
     *
     * @param updatePass
     */
    void updatePassword(UpdatePass updatePass);

    /**
     * 重置客户密码
     *
     * @param id
     * @return
     */
    int resetPassword(Long id);

    /**
     * 禁用账号
     *
     * @param id
     * @return
     */
    int disabledAccount(Long id);

    /**
     * 启用账号
     *
     * @param id
     * @return
     */
    int enabledAccount(Long id);
}
